package day03;

import java.util.Scanner;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/10
 *
 * 验证歌德巴赫猜想
 * 输入的是0，表示想退出输入；
 * 对任何一个不小于6的偶数a，总可以表示成两个奇素数的和；a= x+y;
 *    8 = 3 + 5;
 * 奇素数：奇数，素数：只能被1或者本身整除的数（质数）
 */

public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("请输入一个不小于6的偶数（输入0退出）：");
            int n = sc.nextInt();
            if(n==0){
                System.out.println("程序已退出");
                break;
            }
            if(n<6 || n%2!=0){
                System.out.println("无效数字，请输入不小于6的偶数");
                continue;
            }
            //奇素数的和
            for (int x=3; x<=n/2; x+=2){
                if(isPrime(x) && isPrime(n-x)){
                    System.out.println(n+" = "+x+"+"+(n-x));
                }
            }

        }
    }

    //判断当前传递来的数据是否是奇素数,true代表奇素数
    public static boolean isPrime(int x){
        for(int i=3; i<=x/2; i+=2) {
            if(x%i==0){
                return false;
            }
        }
        return true;
    }
}
